Excel VBA プロシージャ

您所在的位置:网站首页 excel vba引用 Excel VBA プロシージャ

Excel VBA プロシージャ

#Excel VBA プロシージャ | 来源: 网络整理| 查看: 265

「Excel VBAコードを書く最初の一歩」記事で VBAコードを書き始め方をご紹介しました。 今回は、その中で個々の処理「ステートメント」をひとまとめにして“関数”のように使える「プロシージャ」についてご紹介します。

大雑把に捉えると、VBAプログラムは、下図のような構成になっています。  

先の記事でも、[挿入]-[標準モジュール]をクリックして「Book1 - Mojule1(コード)」という画面を表示し、この中にコードを書いていくとお話しました。 そして、[挿入]-[プロシージャ]をクリックして「プロシージャの追加」ダイアログを表示しプロシージャを書き入れていくわけです。(下図)  

このダイアログにも表示されているように、プロシージャには次の 3つがあります:

Subプロシージャ Functionプロシージャ Propertyプロシージャ

プロシージャには名前を付けられ、英字以外にも日本語も使えます。 ただし、以下の規則にしたがって命名します:

英字、ひらがな、全角カタカナ、漢字、数字、アンダースコア(_)が使える 先頭は、数字または記号以外の文字とする 半角255文字(全角127文字)以内 Excelの関数や VBAで定義されているキーワードは使えない 1つのモジュール内で同じ名前のプロシージャは作れない

(1) Subプロシージャ

一般的なプロシージャ(VBAの処理をまとめたもの)です。 簡単な書式としては

Sub プロシージャ名()  'ここにVBAの処理を書く End Sub

という形式が使えます。 プロシージャ名に続く括弧の中に何も記載されていませんので、引数なしで実行されます。 また、あるプロシージャからこのプロシージャを呼び出すこともできます。

Sub プロシージャ01()  Call プロシージャ02 '単に「プロシージャ02」でも可 End Sub

Sub プロシージャ02()  '処理内容02を書く End Sub

引数を与えて実行させたいときは次のようにします。 「値渡し」で引数を渡すときは

Sub プロシージャ名(ByVal 変数名 As データ型)  '処理の内容 End Sub

「参照渡し」で引数を渡すときは

Sub プロシージャ名(ByRef 変数名 As データ型)  '処理の内容 End Sub

という形式で書きます。 「値渡し」で渡したときは、戻って来たときに変数の値は元のままですが、「参照渡し」で渡したときは、プロシージャ内で変数の値が変更されると戻って来たときにもその変数は変更された値となります。

いずれの場合も複数の引数を渡すことができ、「値渡し」と「参照渡し」を混在させることもできます。

(2) Functionプロシージャ

Subプロシージャは戻り値を返すことができませんが、Functionプロシージャは戻り値を返すプロシージャです。 Excelのワークシート関数のような感じです。

引数も戻り値もない形式もできますが、以下は引数がなく戻り値を返す形式です。

Function func1() As 戻り値のデータ型   '処理の内容  func1 = 戻り値 End Function

プロシージャ名を、戻り値を格納する変数として使います。

引数を渡す場合は

Function func2(ByVal 変数名 As データ型) As 戻り値のデータ型  '処理の内容  func2 = 戻り値 End Function

ここでは「値渡し」(ByVal)で書きましたが、もちろん「参照渡し」(ByRef)も出来ますし、複数の引数もでき、「値渡し」と「参照渡し」の混在も可能です。

(3) Propertyプロシージャ

ユーザが作成したプロパティ(変数など)に対して値の設定や取得を行うプロシージャです。 「Get」「Let」「Set」のステートメントがあります。

これらを使わなくとも値の設定や取得はできますので、ここではこれ以上の説明は省略します。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3